var express = require('express');
var router = express.Router();
var open = require('../../utls/mgdb').open
var bcrypt = require('../../utls/bcrypt')//操作是同步的
var jwt = require("../../utls/jwt")

router.post('/', function(req, res, next) {

    console.log('login')
    // 1.获取传过来的信息--username,password
    let {username,password} = req.body;

    // 2.设定必传参数--没传不兜库
    if(!username || !password){
        res.send({
            err:1,
            msg:'用户名或密码填写不能为空'
        })
        return;
    }
    // 3.兜库 open 
    open({
        collectionName:'user'
    }).then(
        ({collection,client})=>{
        collection.find({username}).toArray((err,result)=>{
            // console.log(result)
            if(err){
                res.send({err:1,msg:'集合操作失败'})
                client.close()
            }else{
    // 4.校验username是否存在--不能校验密码因为加了密了
                if(result.length>0){
    // 5.解密对比密码
                    // console.log(password)
                    // console.log(result[0].password)
                    
                    if(bcrypt.compareSync(password,result[0].password)){
    // 6.失败 || 成功(生成token--是否自动登录)
                        let token = jwt.sign({username,_id:result[0]._id})
                        delete result[0].username;
                        delete result[0].password;
                        res.send({err:0,msg:'登陆成功',data:result[0],token})
                        console.log(token)
                        client.close()
                    }else{
                        res.send({err:1,msg:'集合失败',message:err})
                        client.close()
                    }
                }else{
                res.send({err:1,msg:'用户名或密码不存在',message:err})
                client.close()
                }
            }
        })
        }
    ).catch(
        err=>res.send({
            err:1,
            msg:'登录--库连接失败'
        })
    )
    });
    module.exports = router;